草庐IT

Python Tkinter 多选列表框

全部标签

c# - 使用 List.Sort(Comparison<T> comparison) 在 C# 中对列表进行排序

我创建了一个类如下:publicclassStringMatch{publicintline_num;publicintnum_of_words;}我已经创建了一个列表Listsm;里面的元素很少。如何使用Comparison对列表进行排序比较过载?必须根据num_of_words进行排序字段。 最佳答案 您可以编写lambda表达式来比较两个对象,如下所示:sm.Sort((x,y)=>x.num_of_words.CompareTo(y.num_of_words));你可以通过添加-进行逆序排序sm.Sort((x,y)=>-x

c# - C# 中的只读列表

我有一些带有List-property的类:classFoo{privateListmyList;}我只想提供对该字段的访问权限以供读取。即我想要属性可以访问Enumerable、Count等,但不能访问Clear、Add、Remove等。我该怎么做? 最佳答案 您可以公开一个List作为ReadOnlyCollection通过使用AsReadOnly()方法C#6.0及更高版本(使用ExpressionBodiedProperties)classFoo{privateListmyList;publicReadOnlyCollect

c# - 获取系统上安装的所有 Access ACE.OLEDB 驱动程序的列表

使用下面的代码我可以枚举在我的系统上注册的OLEDB提供者staticvoidDisplayData(){varreader=OleDbEnumerator.GetRootEnumerator();varlist=newList();while(reader.Read()){for(vari=0;i它返回驱动程序列表(我们对Access驱动程序感兴趣),但有一个警告..针对.net4.5它包含:SOURCES_NAME=Microsoft.ACE.OLEDB.15.0但是当项目是针对.net4.0构建时,输出是:SOURCES_NAME=Microsoft.ACE.OLEDB.12.0

c# - 将列表从 IronPython 传递到 C#

我想将IronPython2.6for.NET2.0中的字符串列表传递给C#程序(我正在使用.NET2.0,因为我使用的API运行基于2.0构建的DLL)。但是当它从ScriptEngine返回时,我不确定如何转换它。namespacetest1{classProgram{staticvoidMain(string[]args){ScriptEngineengine=Python.CreateEngine();ScriptSourcesource=engine.CreateScriptSourceFromFile("C:\\File\\Path\\To\\my\\script.py")

c# - “不要公开通用列表”,为什么在方法参数中使用 collection<T> 而不是 list<T>

我正在使用FxCop,它显示“不要公开通用列表”的警告,建议使用Collection而不是List.首选它的原因,我知道所有这些东西,如thisSOpost中所述和MSDN以及我浏览过的更多文章。但我的问题是,我很少有方法可以进行如此繁重的计算,并且方法接受List的参数。就性能而言,这应该更快更好。但是FxCop也为此发出警告。所以一个选择是我应该将参数声明为Collection,然后使用ToList()在方法内部,然后使用它。那么优化了哪一个呢?“抑制这种情况下的警告”或“在参数中使用Collection,然后在方法本身内部使用ToList()”。 最佳

c# - 您如何使用 Fluent Validation 对列表中的每个字符串进行验证?

我有一个MVC3View模型定义为:[Validator(typeof(AccountsValidator))]publicclassAccountViewModel{publicListAccounts{get;set;}}使用FluentValidation(v3.3.1.0)将验证定义为:publicclassAccountsValidator:AbstractValidator{publicAccountsValidator(){RuleFor(x=>x.Accounts).SetCollectionValidator(newAccountValidator());//This

c# - 是否可以将通用方法应用于项目列表?

假设我已经编写了自己的方法来反转列表。publicstaticvoidMyReverse(Listsource){varlength=source.Count;varhLength=length/2;for(vari=0;i我这样调用它,而且它有效。varfooList=newList();MyReverse(fooList);如果我想反转多个列表,我会这样调用。varfooList=newList();varbarList=newList();varbazList=newList();MyReverse(fooList);MyReverse(barList);MyReverse(ba

c# - 是否可以通过引用返回列表的一部分?

我的情况是我只想分配一个列表的另一个列表的一部分。如果可能的话,通过引用。到目前为止我所做的是这里:ListpartialList=originalList.Skip(start).Take(end-start).ToList();示例:一个包含6个元素的列表,开始为2,结束为4。InNewListElementN0N1Y2Y3Y4N5现在据我了解.ToList()它会创建原始结果的副本。因此,这将是按值而不是按引用。所以我的问题是:是否有任何“通过引用”的方式来实现我想要的结果? 最佳答案 您可以很容易地编写自己的切片类:publ

c# - 在 Sharepoint 中将列表项从一个列表复制到另一个列表

在Sharepoint中,如何将列表项从一个列表复制到另一个列表例如从“ListA”复制到“ListB”(两者都在站点的根目录中)我希望在将新列表项添加到“列表A”时进行此复制我尝试在ItemAdded事件接收器中使用SPListItem的CopyTo()方法,但无法找出要复制到的url。 最佳答案 这是我使用的代码。将一个SPlistItem和目标列表的名称传递给它,如Sharepoint中所示(不是URL)。唯一的限制是两个列表必须在同一站点中:privateSPListItemCopyItem(SPListItemsource

c# - 从列表中的每个元组中获取某些项目

创建列表的正确方法是什么,比如说,每个Tuple的第一项。在List的Tuples?如果我有一个List>,我怎样才能得到List每个Tuple中的第一个字符串? 最佳答案 一点Linq就可以解决这个问题:varmyStringList=myTupleList.Select(t=>t.Item1).ToList();作为解释,由于Tim发布了几乎相同的答案,因此Select()创建了一个1:1的“投影”;它获取Enumerable的每个输入元素,并为每个输入元素计算lambda表达式,并将结果作为具有相同数量元素的新Enumerab